type MyAwaited<T> =
    T extends object & { then(onfulfilled: infer F, ...args: any): any }
        ? F extends (value: infer V, ...args: any) => any
            ? MyAwaited<V>
            : never
        : T

